//数组 --->对象 Array
const arr1 = new Array();
const arr2 = [];

//长度不固定 元素类型可以不同 
const arr = ["red", "green", "blue"];
console.log(typeof arr);//Object

console.log(Array.isArray(arr));//判断是否为数组 
console.log(arr.length); //属性 :等于最大的下标值加1 返回的不是元素个数

console.log(arr[1]); 
console.log();

//数据遍历 for ... of 
for(let elem of arr ){
    console.log(elem);
}
console.log();
//查找元素
console.log(arr.indexOf("green")); //>=0
console.log(arr.includes("green"));


//---------------对数组自身进行操作--------------------------
//1.修改元素 pop/push unshift/shift
let color = arr.pop();
console.log(color);
console.log(arr);

console.log();
arr.push("blue");
console.log(arr);

console.log();
arr.unshift("while") //添加元素
console.log(arr);
color = arr.shift();  //取出元素
console.log(color);
console.log(arr);

console.log();
//2.plice 可以替代 pop/push unshift/shift
arr.splice(1,1); //从下标1开始 删除一个
console.log(arr);
arr.splice(1,0,"green"); //在1的位置删除0个 插入green
console.log(arr);
//3.数组逆序
console.log(arr.reverse()); 


console.log();
//-------生成新的数组--------
//1. 得到子数组  ---> slice(分割)
const subArr = arr.slice(1, 3); 
console.log(subArr);
console.log(subArr === arr);
console.log();
//2.拼接数组 ---> concat(拼接)
const concatArr = arr.concat(["white","brack"]);
console.log(concatArr);
console.log(concatArr === arr);
console.log();
//3.克隆数组对象 
const cloneArr = [].concat(arr);
console.log(cloneArr);
console.log();
//4.Array --> String 转换
const joinStr = arr.join(":"); //通过: 进行拼接
console.log(joinStr);
//5. String --> Array 
console.log(joinStr.split(":")); //按照:来分割字符串

